"""
setAlignment 设置文本的对齐方式
setIndent 设置文本缩进
text():获取文本内容
setBuddy():设置伙伴关系
selectText():返回所选择的字符
setWordWrap():设置是否允许换行
QLabel常用的信号(事件):
1.当鼠标滑过QLabel控件时触发:linkHovered
2.当鼠标单击QLabel控件时触发：linkActivated
"""
import sys

from PyQt5.QtWidgets import QLabel, QWidget, QVBoxLayout, QApplication, QPushButton
from PyQt5.QtGui import QPalette, QPixmap, QFont
# from PyQt5.QtCore import Qt
from PyQt5.QtCore import *


class QLabelDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.iniUI()

    def iniUI(self):
        label1 = QLabel(self)
        label2 = QLabel(self)
        label3 = QLabel(self)
        label4 = QLabel(self)

        label1.setText("<font color=red>这是一个文本标签.</font>")
        #  如何设为True用浏览器打开网页，如果设为False,调用槽函数
        label1.setAutoFillBackground(True)
        palette = QPalette()
        palette.setColor(QPalette.Window, Qt.yellow)
        label1.setPalette(palette)
        label1.setAlignment(Qt.AlignCenter)
        label1.setFont(QFont('Microsoft YaHei', 20))

        label2.setText("<a href='#'>欢迎使用Python GUI程序</a>")
        label2.setFont(QFont('微软雅黑', 10))
        label3.setAlignment(Qt.AlignCenter)
        label3.setToolTip("这是一个图片标签")
        label3.setPixmap(QPixmap("./images/Python.png"))
        label4.setText("<a href='https://item.jd.com/12417265.html'>感谢关注《Python从菜鸟到高手》</a>")
        #  设为True 打开链接功能 False关闭链接功能,恢复点击事件
        label4.setOpenExternalLinks(True)
        label4.setAlignment(Qt.AlignRight)
        label4.setToolTip('这是一个超级链接')
        label4.setFont(QFont('微软雅黑', 10))
        vbox = QVBoxLayout()
        # vbox.setStretchFactor(label1, 1)
        # vbox.setStretchFactor(label2, 1)
        vbox.addWidget(label1, 2)
        vbox.addWidget(label2, 1)
        vbox.addWidget(label3, 16)
        vbox.addWidget(label4, 1)

        label2.linkHovered.connect(self.linkHovered)
        label4.linkActivated.connect(self.linkClicked)
        self.setLayout(vbox)
        self.setWindowTitle('QLabel控件演示')
        self.setGeometry(300, 300, 400, 300)


    def linkHovered(self):
        print("当鼠标滑过label2标签时，触发事件")

    def linkClicked(self):
        print("当鼠标单击lebel标签时，触发事件")


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = QLabelDemo()
    main.show()
    sys.exit(app.exec_())
